package com.itlong.cloud.commons.service;

import com.itlong.cloud.POJO.DTO.property.PropertyPaymentTradeDTO;
import com.itlong.cloud.POJO.DTO.property.PropertyPaymentTradeGetPageDTO;
import com.itlong.cloud.POJO.PO.HuaweiOrderInfoPO;
import com.itlong.cloud.POJO.VO.property.PropertyPaymentTradeInfoAllVO;
import com.itlong.cloud.POJO.VO.property.PropertyPaymentTradeInfoVO;
import com.itlong.cloud.POJO.VO.property.PropertyPaymentTradeVO;
import com.itlong.cloud.utils.page.Page;

import java.util.List;

/**
 * <desc>
 *      订单管理服务层接口
 * </desc>
 *
 * @createDate 2019/05/23
 */
public interface IPaymentTradeService {

    /**
     * <desc>
     *      分页查询付费通行订单
     * </desc>
     *
     * @param propertyPaymentTradeDTO 订单管理DTO
     * @return 付费通行订单分页信息
     * @author wangzhi
     * @createDate 2019/05/23
     */
    Page<PropertyPaymentTradeVO> getPage(PropertyPaymentTradeDTO propertyPaymentTradeDTO) throws Exception;

    /**
     * <desc>
     *      查询导出的付费通行订单列表
     * </desc>
     *
     * @param propertyPaymentTradeDTO 订单管理DTO
     * @return 导出的付费通行订单列表
     * @author wangzhi
     * @createDate 2019/05/23
     */
    List<PropertyPaymentTradeVO> getExportData(PropertyPaymentTradeDTO propertyPaymentTradeDTO) throws Exception;

    /**
     * <desc>
     *      分页查询所有支付订单
     * </desc>
     *
     * @param propertyPaymentTradeGetPageDTO 支付订单查询参数DTO
     * @return
     * @Author Zhu.yj
     * @createDate  2019/10/18
     */
    Page<PropertyPaymentTradeInfoVO> getPaymentTradeByPage(PropertyPaymentTradeGetPageDTO propertyPaymentTradeGetPageDTO) throws Exception;

    /**
     * <desc>
     *      运营分页查询直接支付订单列表
     * </desc>
     *
     * @param propertyPaymentTradeGetPageDTO
     * @return
     * @Author Zhu.yj
     * @createDate  2019/10/23
     */
    PropertyPaymentTradeInfoAllVO getOperatePaymentTradeByPage(PropertyPaymentTradeGetPageDTO propertyPaymentTradeGetPageDTO) throws Exception;

    /**
     * <desc>
     *      统计运营直接到账的支付订单总金额
     * </desc>
     *
     * @param
     * @return
     * @Author Zhu.yj
     * @createDate  2019/10/30
     */
    String getOperatePaymentTradePriceCount() throws Exception;

    /**
     * <desc>
     *      保存华为SaaS信息
     * </desc>
     *
     * @param po
     * @return
     * @Author Qiang.S
     * @createDate  2020/04/22
     */
    void saveHuaweiSaaSData(HuaweiOrderInfoPO po) throws Exception;
}
